package cn.stylefeng.roses.kernel.sys.modular.user.mapper;

import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper;
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 系统用户 Mapper 接口
 *
 * @author fengshuonan
 * @date 2023/06/10 21:26
 */
public interface SysUserMapper extends CustomBaseMapper<SysUser> {


    /**
     * 插入用户详情
     *
     * @param userId
     * @param content
     *
     */
    void insertUserContent(@Param("userId") Long userId, @Param("content") String content);

    /**
     * 更新用户企业详情
     *
     * @param userId
     * @param content
     */
    void updateUserContentByUserId(@Param("userId") Long userId, @Param("content") String content);


    /**
     * 根据用户id查询用户详情
     * @param userIds
     * @return
     */
    List<String> selectUserContentByUserIds(@Param("userIds") List<Long> userIds);


    /**
     * 根据用户id查询用户详情
     */
    String selectUserContentByUserId(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteUserContentByUserId(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductClassifyByProductIds(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductDataByProductIds(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductDealerByProductIds(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductDealerViewByProductIds(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductSeoByProductIds(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductStoryByProductIds(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductTagsByProductIds(@Param("userId") Long userId);

    /**
     * 根据用户id删除用户详情
     */
    void deleteProductThumbByProductIds(@Param("userId") Long userId);

    /**
     * 删除推荐产品
     */
    void deleteProductRecommendByProductIds(@Param("userId") Long userId);
    /**
     * 根据用户id删除用户详情
     */
    void deleteGoodsByUserId(@Param("userId") Long userId);

    /**
     * 禁用产品
     */
    void disableGoodsByUserId(@Param("statusFlag") Integer statusFlag, @Param("userId") Long userId);

    /**
     * 禁用英文商品
     */
    void disableGoodsByUserIdEn(@Param("statusFlag") Integer statusFlag, @Param("userId") Long userId);


    /**
     *  查询经销商在线商品数量
     */
    Integer getOnlineProductCount(@Param("userId") Long userId);

    /**
     * 查询供应商商品数量
     */
    Integer getSupplierProductCount(@Param("userId") Long userId);
}